<template>
  <el-dialog :title="!dataForm.currentId ? '新增' : '修改'" :close-on-click-modal="false" width="25%"
    :visible.sync="visible">
    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
      label-width="80px">
      <el-form-item v-if="dataForm.type !== 2" label="分类名称" prop="categoryName">
        <el-input v-model="dataForm.categoryName" controls-position="right" :min="0" label="分类名称" style="width:50%;">
        </el-input>
      </el-form-item>
      <el-form-item v-if="dataForm.type !== 2" label="排序号" prop="seq">
        <el-input-number v-model="dataForm.seq" controls-position="right" style="width:50%;"
          :min="dataForm.categoryName=='店铺招牌'?1:(dataForm.categoryName=='新品推荐'?2:(dataForm.categoryName=='活动专区'?3:4))"
          label="排序号"></el-input-number>
      </el-form-item>
      <el-form-item label="状态" size="mini" prop="status">
        <el-radio-group v-model="dataForm.status">
          <el-radio :label="0">下线</el-radio>
          <el-radio :label="1">正常</el-radio>
        </el-radio-group>
      </el-form-item>
    </el-form>
    <span slot="footer" class="dialog-footer">
      <el-button size="small" @click="visible = false">取消</el-button>
      <el-button size="small" type="primary" @click="dataFormSubmit()">确定</el-button>
    </span>
  </el-dialog>
</template>
<script>
  import {
    treeDataTranslate,
    idList
  } from '@/utils'
  import PicUpload from '@/components/pic-upload'
  export default {
    props: {
      saleType: {
        required: true
      }
    },
    data() {
      var seqValidate = (rule, value, callback) => {
        console.log(value);
        if (['店铺招牌', '新品推荐', '活动专区', ].indexOf(this.dataForm.categoryName) !== -1) {
          if (this.dataForm.categoryName == '店铺招牌' && this.dataForm.seq !== 1) {
            callback(new Error('店铺招牌排序好应为1'))
          } else if (this.dataForm.categoryName == '店铺招牌' && this.dataForm.seq == 1) {
            callback()
          } else if (this.dataForm.categoryName == '新品推荐' && this.dataForm.seq !== 2) {
            callback(new Error('新品推荐排序号应为2'))
          } else if (this.dataForm.categoryName == '新品推荐' && this.dataForm.seq == 2) {
            callback()
          } else if (this.dataForm.categoryName == '活动专区' && this.dataForm.seq !== 3) {
            callback(new Error('新品推荐排序号应为3'))
          } else if (this.dataForm.categoryName == '活动专区' && this.dataForm.seq == 3) {
            callback()
          }
        } else if (this.dataForm.seq < 4) {
          callback(new Error('请将排序设置在3以后（不包含3）'))
        } else {
          callback()
        }
      }
      return {
        visible: false,
        dataForm: {
          categoryId: 0,
          currentId: 0,
          grade: 0,
          categoryName: '',
          seq: 4,
          status: 1,
          parentId: 0,
          // pic: ''
        },
        dataRule: {
          categoryName: [{
            required: true,
            message: '分类名称不能为空',
            trigger: 'blur'
          }],
          seq: [{
            validator: seqValidate,
            trigger: 'blur'
          }]
        },
        categoryList: [],
      }
    },
    components: {
      PicUpload
    },
    methods: {
      init(id) {
        // this.dataForm.currentId = id || 0
        this.dataForm.categoryId = id || 0
        this.visible = true
        this.$nextTick(() => {
          this.$refs['dataForm'].resetFields()
          // this.selectedCategory = []
        })
        // }).then(() => {
        if (this.dataForm.categoryId) {
          // 修改
          this.$http({
            url: this.$http.adornUrl(`/prod/category/info/${this.dataForm.categoryId}`),
            method: 'get',
            params: this.$http.adornParams()
          }).then(({
            data
          }) => {
            this.dataForm.categoryId = data.categoryId
            this.dataForm.categoryName = data.categoryName
            this.dataForm.seq = data.seq
            this.dataForm.status = data.status
          })
        }
      },
      handleChange(val) {
        this.dataForm.parentId = val[val.length - 1]
      },
      // 表单提交
      dataFormSubmit() {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            console.log('validate OK ');
            this.$http({
              url: this.$http.adornUrl(`/prod/category`),
              method: this.dataForm.categoryId ? 'put' : 'post',
              data: this.$http.adornData({
                'categoryId': this.dataForm.categoryId || undefined,
                'categoryName': this.dataForm.categoryName,
                'status': this.dataForm.status,
                'seq': this.dataForm.seq,
                'grade': this.dataForm.grade,
                saleType: this.saleType,
                // 'parentId': this.dataForm.parentId,
                // 'pic': this.dataForm.pic
              })
            }).then(({
              data
            }) => {
              this.$message({
                message: '操作成功',
                type: 'success',
                duration: 1500,
                onClose: () => {
                  this.visible = false
                  this.$emit('refreshDataList')
                }
              })
            })
          }
        })
      }
    }
  }
</script>
